package com.xnyzc.lhy.finance.service.bank;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.finance.entity.bank.AddBankParams;
import com.xnyzc.lhy.finance.entity.bank.OaDBindBankCard;
import com.xnyzc.lhy.finance.params.dto.bank.OaBankCardBindDTO;

/**
 * <p>
 * 银行卡操作 服务类
 * </p>
 *
 * @author cuixiaojian
 * @since 2019-10-16
 */
public interface IOaDBankCardService {

    /**
     * 新增支持银行信息
     *
     * @param params
     * @return
     */
    Rv addBank(AddBankParams params);

    /**
     * 更新支持银行信息
     *
     * @param params
     * @return
     */
    Rv updateBank(AddBankParams params);

    /**
     * 获取支持银行信息
     *
     * @return List
     */
    Rv getBank();

    Rv getBank(Long id);

    /**
     * 获取司机姓名和身份证号
     *
     * @param driverId 司机ID
     * @return Map
     */
    Rv getDriverNameAndIDEntity(Long driverId);

    /**
     * 司机绑定银行卡
     *
     * @param oaBankCardBindDTO 银行卡信息
     * @return Map
     */
    Rv bindBankCard(OaBankCardBindDTO oaBankCardBindDTO);

    /**
     * 司机修改银行卡开户行
     *
     * @param oaDBindBankCard
     * @return
     */
    Rv updateBankBatch(OaDBindBankCard oaDBindBankCard);

    /**
     * 检查司机银行卡绑定状态
     *
     * @param driverId 司机Id
     * @return Map
     */
    Rv checkBankCardBindStatus(Long driverId);

    /**
     * 司机切换银行卡
     *
     * @param driverId 司机ID
     * @param cardId   银行卡ID
     * @return Map
     */
    Rv switchBankCard(Long driverId, Long cardId);

    /**
     * 司机查询已绑定银行卡列表
     *
     * @param driverId 司机ID
     * @return List
     */
    Rv driverBindBankCardList(Long driverId);

    /**
     * 我的银行卡
     *
     * @return
     */
    Rv myCard();

    /**
     * 解绑银行卡
     */
    Rv untieBindBank(Long bankId);

}
